const Koa = require('koa'); // 导入Koa框架
const app = new Koa(); // 创建Koa应用实例
const { bodyParser } = require('@koa/bodyparser'); // 导入请求体解析中间件
const Router = require('@koa/router'); // 导入Koa路由模块
const serve = require('koa-static'); // 导入静态文件服务中间件
const mount = require('koa-mount'); // 导入挂载中间件
const path = require('path'); // 导入路径处理模块

// 设置静态文件目录，通过/static路径访问
app.use(mount('/static', serve(path.join(__dirname, './static'))));

//koa跨域配置
app.use(cors({
    origin(ctx){
        return '*'
    }
}))

const router = new Router(); // 创建主路由实例
const userRouter = require('../routes/user'); // 导入用户路由
const jindianRouter = require('../routes/jingdian'); // 导入景点路由

// 定义根路由
router.get('/', (ctx, next) => {
    ctx.body = {
        title: 'hello koa', // 返回欢迎信息
        result: ctx.query // 返回查询参数
    };
});

app.use(bodyParser()); // 使用请求体解析中间件
console.log('静态文件目录:', path.join(__dirname, './static')); // 打印静态文件目录路径

// 注册子路由
router.use(userRouter.routes()); // 注册用户路由
router.use(jindianRouter.routes()); // 注册景点路由

// 应用路由中间件
app.use(router.routes()); // 使用路由
app.use(router.allowedMethods()); // 允许所有HTTP方法

// 启动服务器
app.listen(3000);//服务器监听在3000端口
console.log('serve is running at http://localhost:3000')